package com.arpa.ntocc.common.service;

import com.arpa.ntocc.common.domain.dto.DepartmentDTO;
import com.arpa.ntocc.common.domain.entity.Department;
import com.arpa.ntocc.common.domain.vo.DepartmentVO;
import com.arpa.ntocc.common.domain.vo.TreeData;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 部门信息 服务类
 * </p>
 *
 * @author LEO
 * @since 2019-12-09
 */
public interface IDepartmentService extends IService<Department> {

    /**
     * 通过code查询用户
     * @param code
     * @return
     */
    Department getByCode(String code);

    /**
     * 保存
     * @param entity
     * @return
     */
    @Override
    boolean save(Department entity);

    /**
     * 根据code更新实体
     * @param entity
     * @return
     */
    int updateByCode(Department entity);

    /**
     * 查询列表
     * @param departmentDTO
     * @return
     */
    List<DepartmentVO> queryList(DepartmentDTO departmentDTO);

    /**
     * 查询合计,包含总数
     * @param departmentDTO
     * @return
     */
    DepartmentVO queryListSum(DepartmentDTO departmentDTO);
    /**
     * 机构部门级联数据
     * @return
     */
    List<TreeData> cascadeData();

    /**
     * 机构部门级联数据不包括集团
     * @return
     */
    List<TreeData> cascadeDataNotLevel0();

    /**
     *获取 部门信息级联 列表
     * @param departmentDTO
     * @return
     */
    List<TreeData> queryTreeData(DepartmentDTO departmentDTO);

    /**
     *获取机构下的部门列表
     * @param groupCode
     * @return
     */
    List<DepartmentVO> getDepartmentList(String groupCode);

}
